//
//  SXDataConvertManager.h
//  iOS_Router_Runtime
//
//  Created by 王水鑫 on 2018/12/5.
//  Copyright © 2018年 王水鑫. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

typedef enum {
    Chinese_PINYIN_TYPE_ALL_BIG, // 全部返回大写
    Chinese_PINYIN_TYPE_ALL_SMALL, // 全部返回小写
    Chinese_PINYIN_TYPE_INITIAL_BIG, // 全部返回首字母大写
    Chinese_PINYIN_TYPE_NORMAl, // 仅把汉字转换为小写Pinyin，其他保留
} Chinese_PinYin_Type;
@interface SXDataConvertManager : NSObject

/**
 NSDictionary 转 jsonString

 @param json json字典
 @return json型字符串
 */
+ (NSString *)convertToJsonStringFromNSDictionary:(NSDictionary *)json;

/**
 jsonString 转 NSDictionary

 @param jsonString json型字符串
 @return json字典
 */
+ (NSDictionary *)convertToNSDictionaryFromJsonString:(NSString *)jsonString;

/**
 汉字 转成 Pinyin - 如果原来是字母则不变

 @param chineseCharacters 中文汉字
 @return 汉字Pinyin
 */
+ (NSString *)convertToPinyinFromChineseCharacters:(NSString *)chineseCharacters;

/**
 汉字 转成 汉字拼音(带声调) - 如果原来是字母则不变

 @param chineseCharacters 中文汉字
 @return 汉字拼音(带声调)
 */
+ (NSString *)convertToPinyinToneFromChineseCharacters:(NSString *)chineseCharacters;

/**
 获取汉字的首字母  - 非汉字自动屏蔽

 @param chineseCharacters 待获取首字母的 汉字 字符串
 @return 返回传入 汉字 字符串的首字母
 */
+ (NSString *)getPinYinPrefixLetterFromChineseCharacters:(NSString *)chineseCharacters;

/**
 毫秒级时间戳(13位，type:NSNumber、NSString)/1000，标准时间戳(10位，type:NSNumber、NSString) 转 标准时间 (2019-01-01 15:44:56)

 @param timestamp 时间戳(NSNumber、NSString)
 @return 标准时间(2019-01-01 15:44:56)
 */
+ (NSString *)convertToStandardTimeFromTimestamp:(id)timestamp;

/**
 标准时间(2019-01-01 15:44:56) 转 标准时间戳(10位，type：NSString)

 @param standardTime 标准时间格式字符串
 @return 返回标准时间戳字符串
 */
+ (NSString *)convertToTimestampFromStandardTime:(NSString *)standardTime;

/**
 NSData转换为UIImage

 @param imageData 图片的Data二进制数据流
 @return 返回图片image
 */
+ (UIImage *)convertToImageFromData:(NSData *)imageData;

/**
 UIImage转换为NSData

 @param image 图片image
 @return 返回图片的Data二进制数据流
 */
+ (NSData *)convertToDataFromImage:(UIImage *)image;

/**
 16进制颜色设置color

 @param hexColor 16进制的颜色码
 @return 返回RGBA颜色
 */
+ (UIColor *)convertToColorFromHexString:(NSString *)hexColor;

/**
 获取固定message显示到控件上所占size.width

 @param message 需显示的message信息
 @param font 显示的字体大小
 @return 返回width
 */
+ (CGFloat)convertToContentWidthOfSizeFromTextMessage:(NSString *)message font:(UIFont *)font maxWidth:(CGFloat)maxWidth;

/**
 获取固定message显示到控件上所占size.height
 
 @param message 需显示的message信息
 @param font 显示的字体大小
 @return 返回height
 */
+ (CGFloat)convertToContentHeightOfSizeFromTextMessage:(NSString *)message font:(UIFont *)font maxWidth:(CGFloat)maxWidth;

@end

NS_ASSUME_NONNULL_END
